package com.campus_information_portal.service.impl;

import com.campus_information_portal.dao.MarkCheckDao;

import com.campus_information_portal.entity.ApplyRecheck;
import com.campus_information_portal.entity.MarkCheck;
import com.campus_information_portal.entity.StuApply;
import com.campus_information_portal.service.MarkCheckService;
import com.campus_information_portal.util.Message;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @author 20155887 赵开兰
 * @className : MarkCheckImpl
 * @Description ：成绩管理模块学生申请复查和老师处理申请业务实现层
 * @create 2018/04/19 15:37
 **/
@Service
public class MarkCheckImpl implements MarkCheckService {
    @Autowired
    private MarkCheckDao markCheckDao;


    /**
     * @param:ApplyRecheck applyRecheck
     * @Description:增加一条学生申请成绩复查记录
     * @author 20155887 赵开兰
     * @methodName:insertApplyRecheck
     * @returnType:void
     * @create 2018/5/3 15:16
     **/
    @Override
    public Message insertApplyRecheck(ApplyRecheck applyRecheck) {
        int flag = markCheckDao.insertApplyRecheck(applyRecheck);
        if (flag == 1) {
            return Message.success().add("100", "成功");
        }
        return Message.fail().add("0305", "插入申请成绩复查失败");
    }

    /**
     * @param : int stateUpdate, int applyRecheck
     * @Description :师反馈学生申请成绩复查。老师查看学生复查成绩申请，并可能进行修改成绩，将
     * 申请状态改为1（代表成绩有误，已修改）；或将申请状态改为2，代表老师已审查完毕，成绩无误
     * @author 20155887 赵开兰
     * @methodName:replyOfApplyScoreRecheck
     * @returnType :int
     * @create 2018/5/3 15:23
     **/
    @Override
    public Message replyOfApplyScoreRecheck(int applyRecheckid, int stateUpdate) {
        int flag = markCheckDao.replyOfApplyScoreRecheck(applyRecheckid, stateUpdate);
        System.out.println("Impl层已执行");
        if (flag == 1) {
            return Message.success().add("100", "处理成绩复查申请成功");
        }
        return Message.fail().add("0306", "处理成绩复查申请失败");
    }

    /**
     * @param ： int MarkId,成绩ID
     * @Description :通过成绩ID查询学生ID
     * @author 20155887 赵开兰
     * @methodName :queryStuIdByMarkId
     * @returnType ：int
     * @create 2018/5/24 14:10
     **/
    @Override
    public int queryStuIdByMarkId(int markId) {
        int stuID = markCheckDao.queryStuIdByMarkId(markId);
        System.out.println("学生ID为：--------------" + stuID);
        return stuID;
    }

    /**
     * @param ：int markId
     * @Description : 根据MarkId查询申请复查表中有无该条成绩申请复查记录,若有记录，即返回值是1，
     * 说明该成绩已申请过了，若返回值是0，则说明可以申请复查成绩
     * @author 20155887 赵开兰
     * @methodName ：queryStateByMarkId
     * @returnType ：int
     * @create 2018/5/29 17:52
     **/
    @Override
    public int queryStateByMarkId(int markId) {
        int applyMarkState = markCheckDao.queryStateByMarkId(markId);
        System.out.println("成绩复查表中记录为：---" + applyMarkState + "个");
        return applyMarkState;
    }

    /**
     * @param
     * @Description :老师查询所有学生的成绩复查申请记录
     * @author 20155887 赵开兰
     * @methodName ：queryAllMarkChecks
     * @returnType ：Message
     * @create 2018/5/26 23:25
     **/
    @Override
    public Message queryAllMarkChecks() {
        List<MarkCheck> markCheckList = markCheckDao.queryAllMarkChecks();
        for (int i = 0; i < markCheckList.size(); i++) {
            System.out.println("获得的联合类对象--" + markCheckList.get(i).toString());
        }
        System.out.println("获得的联合类对象集合--" + markCheckList.toString());
        if (markCheckList.size() > 0) {
            return Message.success().add("markCheckList", markCheckList);
        }
        return Message.fail().add("0306", "老师查询成绩复查申请失败");
    }
}
